/*
 * UnregisteredCoursesSerialIterator.h
 *
 *  Created on: 14 May 2010
 *      Author: Savramis Sartios
 */

#ifndef UNREGISTEREDCOURSESSERIALITERATOR_H_
#define UNREGISTEREDCOURSESSERIALITERATOR_H_

#include "IUnregisteredCoursesSerialIterator.h"
#include "../../Lists/IUnregisteredCourses.h"

class UnregisteredCoursesSerialIterator : public IUnregisteredCoursesSerialIterator {
public:
	UnregisteredCoursesSerialIterator();

	UnregisteredCoursesSerialIterator(const IUnregisteredCourses *courses);

	virtual ~UnregisteredCoursesSerialIterator();

	virtual bool	first();

	virtual bool	next();

	virtual	bool	isDone();

	virtual ICourseWithTeacher *	getCurrent();
private:
	bool	setBegin(const vector<ICourseWithTeacher *>::iterator begin);
	IUnregisteredCourses	*courses_;
	vector<ICourseWithTeacher *>::iterator it_;
	int current_;
};

#endif /* UNREGISTEREDCOURSESSERIALITERATOR_H_ */
